const http = require('http');
const url = require('url')
const fs = require('fs')
const server = http.createServer();
const artTemplate = require('art-template')
const messageList = [{name: '哈哈',content: '你好！'},  {name: '啦啦',content: 'Hello！'}]

    const {redirect} = require('./utils/common')
    const fileUtil = require('./utils/file-util')
    const {connectMysql} =require('./utils/mysql-utils')
    const messageDao = require('./dao/message-dao')

        // url.parse()

    server.on('request', function (request, response) {
    
        const objUrl = url.parse(request.url, true)
        if (request.url.startsWith('/node_modules')) {
            console.log(111)
            // fs.readFile('.' + request.url, function (err, data) {
            //     if (err) {
            //         response.end('404')

            //     } else {
            //         response.end(data.toString())
            //     }
            // })
            fileUtil.readFile('.' + request.url,response)
        }
        else if(objUrl.pathname == '/delete'){
            // 进行删除
            messageDao.del(objUrl.query.id).then(res=>{
                redirect('/',response)
            }).catch(err => {
                fileUtil.errorPage('删除失败',response)
            })
        }
    // 主页面
    // else if (request.url == '/' || request.url == '/index') {
        else if (objUrl.pathname == '/' ||objUrl.pathname == '/index') {
        // fs.readFile('./views/messageBoard.html', function (err, data) {
        //     if (err) {
        //         console.log(err)
        //         response.end('404')
        //     } else {
        //         let html = artTemplate.render(data.toString(), {
        //             messageList
        //         })
        //         response.end(html)
        //     }
        // })
        messageDao.select(objUrl.query).then(res => {

            fileUtil.readFileRender('./views/messageBoard.html',response,{messageList:res})
        }).catch(sqlErr=>{
            console.error(sqlErr);
            fileUtil.errorPage('查询出错', response)
        })
    }
    
    // 分页  跳转页
    else if (request.url == 'public-message.html') {
    //     // fs.readFile('./views/public-message.html', function (err, data) {
    //     //     if (err) {
    //     //         console.log(err)
    //     //         response.end('404')
    //     //     } else {
    //     //         let html = artTemplate.render(data.toString(), {
    //     //             messageList
    //     //         })
    //     //         response.end(html)
    //     //     }
    //     // })
        messageDao.select(objUrl.query).then(res => {
            fileUtil.readFileRender('./views/public-message.html',response,{messageList:res})
        }).catch(sqlErr=>{
            console.error(sqlErr);
            fileUtil.errorPage('查询出错', response)
        })
       
    }

    // 点击提交
    else if ( objUrl.pathname== '/save') {
        // messageList.push(objUrl.query)
        // response.setHeader("Location","/")
        // response.statusCode=302
        // response.end()
        messageDao.insert(objUrl.query.name,objUrl.query.content).then(res =>{
            redirect('/index',response)
        }).catch(sqlErr=>{
            console.error(sqlErr);
            fileUtil.errorPage('查询出错', response)
        })
    }
    
    else {
        // fs.readFile('./views' + request.url, function (err, data) {
        //     if (err) {

        //         console.log(err)
        //         response.end('404')
        //     } else {
        //         response.end(data)
        //     }
        // })
        fileUtil.readFile('./views' + request.url,response)
    }
})

server.listen(3500, function () {
    console.log('监听端口为3500')
})